/**
 * @file cutility.h
 *
 * @date Feb 27, 2012
 * @author Francesco Corvino
 */

#ifndef CUTILITY_H_
#define CUTILITY_H_

#include <stdlib.h>
#include <stdio.h>

#include "../../utilities.h"
#include "../applicationLib.h"

/**
 * @brief Stringa utilizzata nelle operazioni di logging.
 */
#define CUTILITY_LOGNAME "cutility"

#define CHAT_DEFAULT_PORT "13112007"

#define CHAT_DEFAULT_NAME "unknow-name"

/**
 * @brief Specifica l'indirizzo di defalut del server di registrazione alla chat
 */
#define _Chat_DefaultRegServerAddress "localhost"

/**
 * @brief Definisce la porta di ascolto del server.
 */
#define _Chat_DefaultRegServerPort "50453"

//////////////////////////////////////////////////////////////////////////////////////
////// Funzioni e strutture utilizzate la chat di base ///////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////

/**
 * @brief Struttura che specifica le informazioni necessarie per comunicare con un'utente in chat.
 */
typedef struct utente {
	/**
	 * @brief Stringa identificativa che permette di riconoscere un utente della chat.
	 */
	char name[20];

	/**
	 * @brief Indirizzo per raggiungere l'utente.
	 */
	AddressInfo address;
}Utente;

void exStartChat();

void Chat_update();

void Chat_changeConfig();

//////////////////////////////////////////////////////////////////////////////////////
////// Funzioni per il caricamento di tutti i comandi di utilità /////////////////////
//////////////////////////////////////////////////////////////////////////////////////

void cutility_LoadAllCommands();

#endif /* CUTILITY_H_ */
